const express = require('express')
const redis = require("redis");

const app = express()
app.use(express.json())

const client = redis.createClient(6379, 'localhost');
// 扔一个漂流瓶
app.post('/', async (req, res, next) => {
  try {
    const bottle = req.body
    client.set(bottle.owner, JSON.stringify(bottle), (err, r) => {
      if (err) {
        throw Error(err)
      }
      res.status(200).json({
        code: '1',
        msg: '你成功的抛出了一个漂流瓶！'
      })
    })
  } catch (err) {
    next(err)
  }
})
// 捡一个漂流瓶
app.get('/', async (req, res, next) => {
  try {
    const query = req.query
    const { user, type } = query

    client.get(user, (err, r) => {
      if (err) {
        throw Error(err)
      }
      console.log(r)
      if (!r) {
        res.status(200).json({
          code: '1',
          msg: '大海空空如也...'
        })
      } else {
        res.status(200).json({
          code: '1',
          msg:'有一个漂流瓶！',
          ...JSON.parse(r)
        })
      }

    })

  } catch (err) {
    console.log(err)
    next(err)
  }
})
// 统一处理异常
app.use((err, req, res, next) => {
  res.status(500).json({
    code: '0',
    msg: err
  })
})

app.listen(3000, () => {
  console.log('running...')
})